Bit rate
AVC h.264 Bitrate control H.264 encoder works in two quality modes, selectable with mvrFixQScale(int16_t *). * VBR (QS57rytrure named mvr_config (dryos.h) or AJ_Movie_CompressionRate_struct (0x67BC in 550D). Some of these settings are only read when starting recording (like OptSize parameters) or continuously during recording (like QScale). Changing certain settings during recording will result in ERR70 (e.g. QSCale/CBR mode, or changing QScale by more than 1 step at a time). Bit rate is adjusted in sub_FF1AAD00(width, fps, Sv) from CompressionRateAdjuster.c (550d/108). When should I use bitrate control? ]] * If you want to record more than 12 minutes in 4 GB, or if you have a slow card (Class 4 or Class 2), use CBR mode with a scaling factor less than 1, or QScale with low negative values (e.g. -4). For example on a 16 GB Card you can achieve over 200 min recording with qscale -1 (this has been a real testing with slow action sequence). * If you want to get fewer compression artifacts, you may try CBR mode with a scaling factor higher than 1. The difference is mostly visible if you do heavy color grading. needed You will need a fast card to handle the high bitrates; cheap Class 10 Cards may not be fast enough for the high bitrate. Note: increasing bitrate will not reduce other artifacts like moire and aliasing, neither will influence the chroma subsampling. Available Bitrates in Magic Lantern CBR This mode uses (almost) constant bitrate, and therefore it's much more robust than QScale (less likely to stop recording due to sudden increase in frame complexity). The exact bitrate achieved with CBR is still dependent on frame complexity. CBR implementation still uses QScale as backend, and this parameter is limited to -16...+16. In particular, when the scene does not contain too many details, QScale will reach -16 and the actual bitrate can be much lower than the one requested. This happens in the CBR 3.0x test below. If the requested bitrate is higher than your card can handle, recording will stop as soon as frame complexity increases. In Magic Lantern, you can set a scaling factor for the default bitrate. CBR 1x is identical with firmware default setting. The following bitrate tests were done by DorianVasco with Bitrate Viewer, on a test scene on the desk without a lot of movement. CBR 0.1x= |-| CBR 1.0x (firmware default)= |-| CBR 2.0x= |-| CBR 3.0x= |-| QScale (VBR) This mode is constant quality, variable bitrate (VBR). You can set QScale value from -16 to +16, and lower numbers will result in higher bitrates. The exact bitrate varies a lot with frame complexity, and there is no direct relationship between QScale and the actual bitrate. You will see a birate meter near the recording dot (550D/60D/500D). Use it to see the actual bitrate, which is displayed as: * instantaneous (for last second) * average (for the entire movie) Note that unexpected changes in frame complexity may increase the bitrate to very high values, and the camera will stop recording. In many cases, QScale settings around -8 will give results close to the default bitrate. Cards dSD cards (for 550D / 60D / 600D / 500D / 1100D) CF cards (for 5D Mark II / 50D) = Test firmware = * For 5D2 2.0.8: Download it from this ml-devel post. It only contains QScale control. * For 5D2 2.0.4: use AJ 5.6 or later Download * For 550D, 60D and 600D: use the Unified version of Magic Lantern. QScale option may not be available in the menu because it's not reliable. = Test videos = *600D Bitrate Test Sandisk Extreme 95MB/sn * 550D Magic Lantern Bitrate and Grading Test * 550D Magic Lantern QScale Test @ ISO 700 * 550D QScale test by Matt Denie * 550D / MagicLantern stable 60MBit by Q-Setting -12 by Adam Mada